package ar.edu.utn.frsf.tpae.a20xx.gyy.persistence.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * Objeto del modelo de datos (persistente). Representa una factura.
 * 
 * @author TPAE
 */
@Entity
@Table(name = "fact")
public class Factura {

  @Id
  @Column(name = "fact_id")
  @SequenceGenerator(name = "SecuenciaFactura", sequenceName = "seq_fact", allocationSize = 1)
  @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SecuenciaFactura")
  private Integer id;

  @Column(name = "fact_nro", unique = true)
  private String numero;

  @Column(name = "fact_fech")
  @Temporal(TemporalType.TIMESTAMP)
  private Date fecha;

  @Column(name = "fact_cli_nomb")
  private String nombreCliente;

  @Column(name = "fact_cli_cuit")
  private String cuitCliente;

  @Column(name = "fact_prec_tot")
  private Double precioTotal;

  // TODO Agregar este atributo y mapearlo.
  // private List<LineaFactura> lineas;  
  
  public Integer getId() {
    return id;
  }

  public void setId(Integer id) {
    this.id = id;
  }

  public String getNumero() {
    return numero;
  }

  public void setNumero(String numero) {
    this.numero = numero;
  }

  public Date getFecha() {
    return fecha;
  }

  public void setFecha(Date fecha) {
    this.fecha = fecha;
  }

  public String getNombreCliente() {
    return nombreCliente;
  }

  public void setNombreCliente(String nombreCliente) {
    this.nombreCliente = nombreCliente;
  }

  public String getCuitCliente() {
    return cuitCliente;
  }

  public void setCuitCliente(String cuitCliente) {
    this.cuitCliente = cuitCliente;
  }

  public Double getPrecioTotal() {
    return precioTotal;
  }

  public void setPrecioTotal(Double precioTotal) {
    this.precioTotal = precioTotal;
  }

}
